//axios 公共工具函数
//引入axios
import axios from 'axios'

//引入store仓库
import store from '@/store'
import { Message } from 'element-ui'

//封装公共地址
//封装超时时间
const instance = axios.create({
  baseURL: 'http://sell.h5.itsource.cn:8087', //公共地址
  timeout: 10000, //超时时间1
})

//封装请求拦截器
instance.interceptors.request.use(
  //config 请求信息对象
  config => {
    //1 获取token
    const token = store.getters.token
    //2 token 挂载在config.headers的某个字段(authorization)和后端商议的
    config.headers.authorization = token

    return config
  },
  //抛出错误信息
  err => {
    return Promise.reject(err)
  }
)

//封装响应拦截器
instance.interceptors.response.use(
  response => {
    let {msg,code}=response.data
    if (code===0) {
      Message.success(msg)
    }
    if (code===1) {
      Message.success(msg)
    }
    if (code===5001) {
      Message.success(msg)
    }
    return response
  },
  //抛出错误信息
  err => {
    // return Promise.reject(err)'
   let {Message,response}=err 
   if (response) {
    switch (responsem,status){
      case 401:
        Message.error(Message)
        break
        case 403:
          Message.error(message)
          break
        case 404:
          Message.error(message)
          break
        case 500:
          Message.error(message)
          break
        default:
          Message.error(message)
          break
    }
   }else {
    Message.error(message)
  }
  return Promise.reject(err)
  }
)

//导出封装好的axios
export default instance
